#!/bin/sh

# Copyright (c) 2006 Don Stewart - http://www.cse.unsw.edu.au/~dons
# adapted by Gareth Smith
# GPL version 2 or later (see http://www.gnu.org/copyleft/gpl.html)

#
# A shell script to be called from vim, to use the awsesome power of haskell
# string processing in everyday editing.
#
# Select the line you want to edit, and in vim, type:
#       !!runwith f
#
# where f :: (Show a) => String -> a
#
# (Assuming your lambdabot is installed in $HOME/lambdabot) it will
# replace the line with (f line)
#
# Hint: If you find yourself using a particular function a lot, use:
#       !!bot let
# to define it in lambdabot's local namespace.
#
# Isn't perfect yet - I'd like it if for functions f :: String -> String, that
# the returned String didn't have to pass through the show function, so we
# didn't get extraneous quote marks. For now, you can s/"//g them away though
# :)
#

DECL=`cat`
cd $HOME/lambdabot
echo "run $* \"$DECL\"" | ./lambdabot 2> /dev/null | sed '$d;/Irc/d;s/lambdabot> //'

